/**
 *@brief MeshNcpDriver 与 MeshNcp 之间的通信包
 */
#pragma once

#include "BasicInformation.h"

struct Path final {
    EndpointId endpointId{};
    ClusterId clusterId{};
    AttributeId attributeId{};

    Path() = default;
    explicit Path(ClusterId cluster, AttributeId attribute);
    explicit Path(Json::Value root);
    [[nodiscard]] Json::Value Encode() const;
};

struct DataBlock final {
    Path path;
    Json::Value data;
    int status = 0;
    explicit DataBlock(Path path, int value);
    explicit DataBlock(Path path, bool value);
    explicit DataBlock(Json::Value root);
    [[nodiscard]] Json::Value Encode() const;
};

